﻿package ygg.encoding.swf.abc.object
{
	
	public class Script extends Trait implements IClassContainer, ISlotContainer
	{
		
		public var init:Method;
		
		private var _classes:Vector.<Class_>; // class
		private var _slots:Vector.<Trait>;
		//private var _methods:Vector.<Method>;
		private var _variables:Vector.<Variable>;
		private var _constants:Vector.<Constant>;
		//private var _functions:Vector.<Function_>;
		
		private var _members:Vector.<Trait>;
		private var _names:Object;
		
		public function Script()
		{
			super();
			_slots = new Vector.<Trait>();
			//_methods = new Vector.<Method>();
			_variables = new Vector.<Variable>();
			_constants = new Vector.<Constant>();
			//_functions = new Vector.<Function_>();
			_classes = new Vector.<Class_>();
			_members = new Vector.<Trait>();
			_names = {};
		}
		
		public function get slots():Vector.<Trait> { return _slots; }
		
		public function set slots(value:Vector.<Trait>):void
		{
			_slots = value;
		}
		public function get classes():Vector.<Class_> { return _classes; }
		
		public function set classes(value:Vector.<Class_>):void
		{
			_classes = value;
		}
		
		public function get variables():Vector.<Variable> { return _variables; }
		
		public function set variables(value:Vector.<Variable>):void
		{
			_variables = value;
		}
		
		public function get constants():Vector.<Constant> { return _constants; }
		
		public function set constants(value:Vector.<Constant>):void
		{
			_constants = value;
		}
		
		public function get members():Vector.<Trait> { return _members; }
		
		public function set members(value:Vector.<Trait>):void
		{
			_members = value;
		}
		
		public function get names():Object { return _names; }
		
		public function set names(value:Object):void
		{
			_names = value;
		}
		
		
	}
	
}